Gentoo Linux

Gentoo Linux
Gentoo logo
GentooTen.png
The desktop as provided by Gentoo Linux LiveDVD, release 10.1
Company / developer Gentoo Foundation
OS family Unix-like
Working state Current
Source model Free and open source software
Initial release March 31, 2002
Latest stable release Rolling release
Update method Emerge
Package manager Portage
Supported platforms IA-32, x86-64, IA-64, PA-RISC; PowerPC 32/64, SPARC 64-bit, DEC Alpha
Kernel type Monolithic (Linux)
Userland GNU
Default user interface KDE from LiveCD, various
License GNU General Public License, others
Official website http://www.gentoo.org

Gentoo Linux (pronounced /ˈdʒɛntuː/ JEN-too) is a computer operating system built on top of the Linux kernel and based on the Portage package management system. It is distributed as free and open source software, but includes some proprietary software packages. Unlike a conventional software distribution, the user compiles the source code locally according to their chosen configuration. There are normally no precompiled binaries for software, continuing the tradition of the ports collection,[1] although for convenience, some software packages (such as Mozilla Firefox and OpenOffice.org) are also available as precompiled binaries for various architectures where compiling would otherwise be very time consuming. The development project and its products are named after the Gentoo penguin. Gentoo package management is designed to be modular, portable, easy to maintain, flexible, and optimized for the user's machine. Gentoo describes itself as a metadistribution, "because of its near-unlimited adaptability".[2]

Contents

History

Gentoo Linux was initially created by Daniel Robbins as the Enoch Linux distribution. The goal was to create a distribution without precompiled binaries that was tuned to the hardware and only included required programs.[3] At least one version of Enoch was distributed: version 0.75, in December 1999.[4]

Compilation issues revealed problems with the GNU Compiler Collection (GCC), used to build from source code. Daniel Robbins and the other contributors experimented with a fork of GCC known as EGCS developed by Cygnus Solutions. At this point, Enoch changed name to Gentoo Linux (the Gentoo species is the fastest swimming penguin[5]). The modifications to EGCS eventually became part of the official GCC (version 2.95), and other Linux distributions experienced similar speed increases.[6]

After problems with a bug on his own system, Robbins halted Gentoo Linux development and switched to FreeBSD for several months, later saying "I decided to add several FreeBSD features to make our autobuild system (now called Portage) a true next-generation ports system."[7]

Gentoo Linux 1.0 was released March 31, 2002.[8] In 2004, Robbins set up the non-profit Gentoo Foundation, transferred all copyrights and trademarks to it, and stepped down as Chief Architect of the project.[9]

The current Board of Trustees[10] is composed of five members who were announced (following an election) on March 2, 2008.[11] There is also a seven-member Gentoo Council that oversees the technical issues and policies of Gentoo.[12] The Gentoo Council members are elected for a period of one year, each year by the active Gentoo developers. When a member of the Council retires, the next in line person is voted into place by the existing Council members.[13]

The Gentoo Foundation is a 501(c)(6) non-profit foundation, registered in the State of New Mexico.[14] In late 2007, the Foundation's charter was revoked.[15] As of May 19, 2008, the State of New Mexico declared that the Gentoo Foundation, Inc. has returned to good standing and is free to do business.[16]

Portability

Although originally designed for the x86 architecture, it has been ported to many others. Currently it is officially supported and considered stable on x86, x86-64, IA-64, PA-RISC, PowerPC, PowerPC 970, SPARC 64-bit and DEC Alpha architectures.[17] It is also officially supported but considered in development state on MIPS,[18] PS3 Cell Processor,[19] System Z/s390,[20] ARM,[21] and SuperH. Official support for 32-bit SPARC hardware has been dropped.[22]

Portability toward other operating systems, such as BSD-derived ones, is under active development by the Gentoo/Alt project. The Gentoo/FreeBSD project already has a working guide based on FreeSBIE,[23] while Gentoo/NetBSD, Gentoo/OpenBSD and Gentoo/DragonFly are being developed.[24] There is also a project to get Portage working on OpenSolaris. There was an unofficial project to create a Gentoo port to GNU Hurd but it has been inactive since 2006.[25]

Portage

Portage is Gentoo's package management system.[2] It is similar in idea to the BSD ports collections: the original design was based on FreeBSD ports. In contrast, the Portage tree does not contain directories of Makefiles, but of so-called ebuilds, bash scripts that describe separate functions to download, configure, make, install and remove a package and additional functions that can be used to set up the operating environment for a package.

Portage's main utility is emerge,[26] which is written in Python and can be used by privileged users to easily inspect and alter the set of installed packages on a Gentoo operating system. Whereas emerge used to operate in a similar way to other ports collections, by entering a directory in the tree and using emerge (instead of make) to perform package management operations, it now reads variables from the file /etc/make.conf (again similar to ports) to determine where the Portage tree is kept.

Alternative package management utilities like Paludis and pkgcore have seen heavy development. Both are intended to be used alongside or instead of the official Portage utilities in both development and practical use. As both competing projects intend to replace the official utilities, an effort has been raised to standardise the application programming interface (API) of ebuilds for all package managers, in a project called the Package Manager Specification or PMS.[27]

Init system

Gentoo's init system is another important feature. It is similar to the System V init system that most Linux distributions use, but uses dependency-based scripts and named run levels rather than numbered ones. It also includes a command called rc-update which manages runlevels.

Gentoo startup scripts use the runscript shell interpreter, rather than a more traditional shell.[28]

Originally Gentoo's rc system was written entirely in bash and was part of the baselayout package, which contains the basic filesystem layout and critical files needed for the system. However, this led to several limitations. For example, certain system calls needed to be accessed during boot which required C-based callouts to be added. These callouts were each statically linked, causing the rc system to bloat over time. Additionally, as Gentoo expanded to other platforms such as Gentoo/FreeBSD and Gentoo Embedded, requiring the relatively heavy bash shell for the rc system became undesirable or sometimes impossible.

This led to a development of baselayout 2, which was written in C and only required a POSIX-compliant shell. During this development, it was decided that it was a better fit if baselayout provided only the base files and filesystem layout for Gentoo, and the rc system was broken off into an independent project - OpenRC.[29]

Installation

Gentoo may be installed in several ways. The most common way is to use the Gentoo minimal CD with a stage 3 tarball (see below for more explanation on stages). As with many Linux distributions, it can also be installed by most Linux flavors already operating.

A graphical installer (the Gentoo Linux Installer project, or GLI) was released with 2006.0, but the project did not gain enough development support and is no longer supported as of 2008.0.

An early and mandatory step in the installation process often not found on more simplified linux distributions is compilation of the kernel. Although this is widely regarded as a complex task,[30] Gentoo provides documentation and tools such as Genkernel to simplify the process and make it straightforward for novice users.[31]

Catalyst

Starting with version 2004.0, Gentoo introduced a tool called Catalyst, which is used to build all Gentoo releases and can be used to build one's own customized install media. In the summer of 2008, Gentoo's founder Daniel Robbins released a new build tool called metro. Metro is used to build releases of funtoo, a slight variant of Gentoo Linux, which is developed and maintained by Daniel Robbins. However, Metro has not yet been integrated into the Gentoo release process.

Stages

Traditionally installation could be started from one of three base stages:

As of November 2005, only stage3 installations are officially supported.[32] Although tarballs for stage1 and stage2 are still distributed, the instructions for installing from these stages have been removed from the handbook[33] and put into the Gentoo FAQ.[1]

Live USB

A Live USB of Gentoo Linux can be created manually or with UNetbootin.[34]

Versions

Even though the versioning system changed to years in 2004, the numbering version system still continues. For example, /etc/gentoo-release might contain "Gentoo Base System release 1.12.11.1". This actually reflects the version of the sys-apps/baselayout package in Portage.

Once Gentoo is installed, it becomes "versionless"; that is, once an emerge update is done, the system is at the latest version, with the most up-to-date packages available (subject to any restrictions specified by the user in Portage configuration files). For example, if a system was installed from a 2005.0 CD, then when version 2005.1 is released an emerge update of the system effectively upgrades the installed Gentoo system to what would result from a fresh installation based on version 2005.1.

On September 22, 2008, it was announced that 2008.1 had been cancelled and that weekly automated builds (Stage 3 and minimal CD) would be provided.[35] On 20 December 2008, the first weekly builds were published.[36]

History

Drawbacks and criticisms

Slow package installation

Compiling a package from source takes considerably more time than installing a pre-built binary. In some cases compilation can take hours[50][51] or even days on older hardware, and may also require a few gigabytes of disk space.

Generally Gentoo users accept long compile times as the cost of being able to apply their own compile-time options. However, pre-compiled binaries are provided for some applications such as OpenOffice.org and Mozilla Firefox, as they are provided by upstream maintainers. By using these binaries one loses the chance to customize the choice of optional features for the packages, but the installation time is reduced to just a few minutes.

To address the issue of long build times, the standard installation process gives users the option of enabling parallel compilations and using pipes instead of temporary files during the build process.[52] Other optional features of the Portage system include distributed compiling[53] and using a compiler cache.[54] In addition, the user may be able to mount a large filesystem in RAM to greatly speed up the process of building packages. Many of these approaches have their own drawbacks, however, so they are not enabled by default.

When installing the same package on multiple computers, the package may be compiled once and a binary package created[55] for quick installation on the other computers, assuming sufficiently similar hardware.

Logo and mascots

A Gentoo is a species of penguin (the penguin is the generic Linux mascot). The official Gentoo logo is a stylized 'g' resembling a silver magatama.[56] Unofficial mascots include Larry The Cow.[2]

See also

Gentoo-derived distributions
Gentoo-using distributions

References

  1. 1.0 1.1 "Gentoo Linux Frequently Asked Questions". Gentoo.org. 2008-10-25. http://www.gentoo.org/doc/en/faq.xml. Retrieved 2010-01-28. 
  2. 2.0 2.1 2.2 "Gentoo Linux - About Gentoo". Gentoo.org. 2007-09-17. http://www.gentoo.org/main/en/about.xml. Retrieved 2010-01-28. 
  3. "Gentoo Linux Documentation - Making the distribution, Part 1". Gentoo.org. 2005-10-09. http://www.gentoo.org/doc/en/articles/making-the-distro-p1.xml. Retrieved 2010-01-28. 
  4. "Planet Mirror - enoch - Enoch Linux - enoch-0.75 - download now". Public.planetmirror.com. 2007-02-11. http://public.planetmirror.com/pub/enoch/enoch-0.75. Retrieved 2010-01-28. 
  5. BBC - Science & Nature - Wildfacts - Gentoo penguin
  6. "Gentoo Linux Documentation - Making the distribution, Part 2". Gentoo.org. 2005-10-09. http://www.gentoo.org/doc/en/articles/making-the-distro-p2.xml. Retrieved 2010-01-28. 
  7. "Gentoo Linux Documentation - Making the distribution, Part 3". Gentoo.org. 2005-10-09. http://www.gentoo.org/doc/en/articles/making-the-distro-p3.xml. Retrieved 2010-01-28. 
  8. "Slashdot | Gentoo 1.0 Released". Linux.slashdot.org. 2002-03-31. http://linux.slashdot.org/article.pl?sid=02/03/31/2123251. Retrieved 2010-01-28. 
  9. "Daniel Robbins Resigns As Chief Gentoo Architect". Slashdot. http://slashdot.org/article.pl?sid=04/04/26/2259211. Retrieved 2010-01-28. 
  10. "Gentoo Linux Documentation - Gentoo Foundation Charter". Gentoo.org. 2010-01-02. http://www.gentoo.org/foundation/en/#doc_chap4. Retrieved 2010-01-28. 
  11. "Gentoo Linux - New foundation trustees elected". Gentoo.org. 2008-03-02. http://www.gentoo.org/news/20080302-foundation-election.xml. Retrieved 2010-01-28. 
  12. "Gentoo Linux Projects - Gentoo Council". Gentoo.org. http://www.gentoo.org/proj/en/council/. Retrieved 2010-01-28. 
  13. Gentoo Council. Accessed May 8, 2009.
  14. GENTOO FOUNDATION, INC., Corporations Information Inquiry, New Mexico Public Relation Commission. Accessed May 8, 2009.
  15. jake (2008-01-14). "Gentoo loses charter; Robbins offers to return [LWN.net]". Lwn.net. http://lwn.net/Articles/265006/. Retrieved 2010-01-28. 
  16. "Gentoo Linux - List Archive: gentoo-nfp". Archives.gentoo.org. http://archives.gentoo.org/gentoo-nfp/msg_d2632d76e6582187bb1816897bb81ffd.xml. Retrieved 2010-01-28. 
  17. "Gentoo 2007.0 press release". http://www.gentoo.org/proj/en/releng/release/2007.0/2007.0-press-release.txt. Retrieved 2010-01-28. 
  18. "Gentoo Linux Projects - Gentoo Linux MIPS Development". Gentoo.org. 2007-01-11. http://www.gentoo.org/proj/en/base/mips/. Retrieved 2010-01-28. 
  19. "Gentoo Linux for PS3 Development". Gentoo.org. 2006-12-26. http://www.gentoo.org/proj/en/base/ppc64/ps3/. Retrieved 2010-01-28. 
  20. "Gentoo Linux Documentation - s390 Installation Document". Dev.gentoo.org. 2004-05-12. http://dev.gentoo.org/~vapier/s390/. Retrieved 2010-01-28. 
  21. "Gentoo Linux Projects - Gentoo Linux ARM Development". Gentoo.org. http://www.gentoo.org/proj/en/base/arm/. Retrieved 2010-01-28. 
  22. "Gentoo Development Guide: Arch Specific Notes - SPARC". Devmanual.gentoo.org. http://devmanual.gentoo.org/archs/sparc/index.html. Retrieved 2010-01-28. 
  23. "Gentoo/FreeBSD installation guide". Gentoo.org. 2009-04-22. http://www.gentoo.org/doc/en/gentoo-freebsd.xml. Retrieved 2010-01-28. 
  24. "Gentoo Linux Projects - Gentoo/*BSD". Gentoo.org. 2006-10-19. http://www.gentoo.org/proj/en/gentoo-alt/bsd/index.xml. Retrieved 2010-01-28. 
  25. "Gentoo GNU Hurd". Mundurat.net. http://www.mundurat.net/ggh/. Retrieved 2010-01-28. 
  26. "Gentoo Linux x86 Handbook - A Portage Introduction". Gentoo.org. 2010-01-01. http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#book_part2_chap1. Retrieved 2010-01-28. 
  27. "Gentoo Linux Projects - Package Manager Specification". Gentoo.org. http://www.gentoo.org/proj/en/qa/pms.xml. Retrieved 2010-01-28. 
  28. Gentoo Handbook
  29. "Gentoo Linux Newsletter - 16 April 2007". Gentoo.org. http://www.gentoo.org/news/en/gwn/20070416-newsletter.xml. Retrieved 2010-01-28. 
  30. "Compiling & Installing Linux 2.4". Smartcomputing.com. 2007-01-05. http://www.smartcomputing.com/Editorial/article.asp?article=articles/2001/s1204/48s04/48s04.asp&guid=. Retrieved 2010-01-28. 
  31. Gentoo Linux Documentation -- Configuring the Kernel
  32. "Gentoo Linux Newsletter - November 14th, 2005". Gentoo.org. http://www.gentoo.org/news/en/gwn/20051114-newsletter.xml. Retrieved 2010-01-28. 
  33. "Mail To News And Back Again". Gmane. 2005-11-05. http://article.gmane.org/gmane.linux.gentoo.documentation/2327. Retrieved 2010-01-28. 
  34. "UNetbootin - Universal Netboot Installer". Unetbootin.sourceforge.net. http://unetbootin.sourceforge.net/. Retrieved 2010-01-28. 
  35. "Gentoo News - New release strategy to provide more current install media". Gentoo.org. 2008-09-22. http://www.gentoo.org/news/20080922-releng-announcement.xml. Retrieved 2010-01-28. 
  36. "Gentoo News - First sets of weekly stage3 tarballs and minimal CDs released". Gentoo.org. 2008-12-20. http://www.gentoo.org/news/20081220-releng-first-weekly-stage.xml. Retrieved 2010-01-28. 
  37. "Gentoo Linux Newsletter - March 1st, 2004". Gentoo.org. http://www.gentoo.org/news/en/gwn/20040301-newsletter.xml. Retrieved 2010-01-28. 
  38. [1]
  39. http://www.gentoo.org/proj/en/releng/release/2004.2/2004.2-press-release.txt
  40. "Gentoo Linux Newsletter - November 15, 2004". Gentoo.org. http://www.gentoo.org/news/en/gwn/20041115-newsletter.xml. Retrieved 2010-01-28. 
  41. "Gentoo Linux - Release Announcement: Gentoo Linux 2005.0". Gentoo.org. 2005-03-27. http://www.gentoo.org/news/20050327-release-2005.0.xml. Retrieved 2010-01-28. 
  42. "Gentoo Linux - Release Announcement: Gentoo Linux 2005.1". Gentoo.org. 2005-08-10. http://www.gentoo.org/news/20050808-annoncement-release-2005.1.xml. Retrieved 2010-01-28. 
  43. "Gentoo Linux - Media Refresh: Gentoo Linux 2005.1-r1". Gentoo.org. 2005-11-21. http://www.gentoo.org/news/20051121-release-2005.1-r1.xml. Retrieved 2010-01-28. 
  44. "Gentoo Linux - Release Announcement: Gentoo Linux 2006.0". Gentoo.org. 2006-02-27. http://www.gentoo.org/news/20060227-release-2006.0.xml. Retrieved 2010-01-28. 
  45. "Gentoo Linux - Gentoo Linux 2006.1 - Unleashed". Gentoo.org. 2006-08-30. http://www.gentoo.org/news/20060830-release.xml. Retrieved 2010-01-28. 
  46. "Gentoo Linux - Gentoo Linux 2007.0 released". Gentoo.org. 2007-05-07. http://www.gentoo.org/news/20070507-release-2007.0.xml. Retrieved 2010-01-28. 
  47. "Gentoo Linux - Gentoo Linux 2008.0 released". Gentoo.org. 2008-07-06. http://www.gentoo.org/news/20080706-release-2008.0.xml. Retrieved 2010-01-28. 
  48. "Gentoo Linux - New release strategy to provide more current install media". Gentoo.org. 2008-09-22. http://www.gentoo.org/news/20080922-releng-announcement.xml. Retrieved 2010-01-28. 
  49. "Gentoo Linux - Ten Years Compiling: 1999 - 2009". Gentoo.org. 2009-10-04. http://www.gentoo.org/news/20091004-gentoo-10-years.xml. Retrieved 2010-01-28. 
  50. How long does an OpenOffice.org build take?, Build FAQ for OpenOffice.org. April 9, 2003. Accessed May 8, 2009.
  51. Compile time stats, Linux Reviews. Accessed May 8, 2009]
  52. Configuring the Compile Options, Gentoo Linux x86 Handbook. July 7, 2008. Accessed May 8, 2009.
  53. Distributed Compiling, Gentoo Linux x86 Handbook. July 7, 2008. Accessed May 8, 2009.
  54. Caching Compilation, Gentoo Linux x86 Handbook. July 7, 2008. Accessed May 8, 2009.
  55. Binary Package Support, Gentoo Linux x86 Handbook. July 7, 2008. Accessed May 8, 2009.
  56. "Gentoo Linux Documentation - Gentoo Name and Logo Usage Guidelines". Gentoo.org. 2005-12-11. http://www.gentoo.org/main/en/name-logo.xml. Retrieved 2010-01-28. 

External links

Unofficial documentation and other
Articles and media coverage